package com.inei.cie.capituloiv;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.inei.cie.R;
import com.inei.cie.capituloix.CapituloIX_Activity;
import com.inei.cie.dao.CapituloIVDao;

public class CapituloIV_Modificar_Linderos_Activity extends Activity implements OnClickListener, OnCheckedChangeListener {
	private Button btnmodificartramos;
	private Button btncancelartramos;
	private TextView ntramos;
	private TextView idtramos;
	private EditText ntramo1;
	private EditText ntramo2;
	private EditText longitud;
	private TextView lbltipolindero;
	private int TipoLindero;
	private RadioButton rsi;
	private RadioButton rno;
	private CapituloIVDao cap4Dao;
	public int i = 1;
	private Bundle b;
	private int predio_actual;
	private int opcionEvaluacionTecnica;
	private int respuestaEvaluacionTecnica;
	private int evaluacionTecnica;
	
	private Spinner sp3d;
	String[] lista3d = new String[5];
	private ArrayAdapter array3d;

	private Spinner sp3e;
	String[] lista3e = new String[5];
	private ArrayAdapter array3e;
	
	private Spinner sp3f;
	String[] lista3f = new String[4];
	private ArrayAdapter array3f;
	
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.capitulo_iv_modificar_linderos);
	    IniciarComponentes();
	}

	private void IniciarComponentes() {
		btnmodificartramos = (Button) this.findViewById(R.id.btnmodificartramo);
		btncancelartramos = (Button) this.findViewById(R.id.btncancelartramo);
		sp3d = (Spinner) this.findViewById(R.id.sp3d);
		sp3e = (Spinner) this.findViewById(R.id.sp3e);
		sp3f = (Spinner) this.findViewById(R.id.sp3f);
		ntramos = (TextView) this.findViewById(R.id.lblnumerototaltramos);
		idtramos=(TextView)this.findViewById(R.id.lblidtramo);
		ntramo1 = (EditText) this.findViewById(R.id.txtntramo1);
		ntramo2 = (EditText) this.findViewById(R.id.txtntramo2);
		longitud = (EditText) this.findViewById(R.id.txtlongitud);
		lbltipolindero = (TextView) this.findViewById(R.id.lbltipolindero);
		rsi=(RadioButton)this.findViewById(R.id.rsi);
		rno=(RadioButton)this.findViewById(R.id.rno);
		
		btnmodificartramos.setOnClickListener(this);
		btncancelartramos.setOnClickListener(this);

		rsi.setOnCheckedChangeListener(this);
		rno.setOnCheckedChangeListener(this);
		
		b = getIntent().getExtras();	
		b.getString("p4_2_1_1");
		b.getString("p4_2_1a_i");
		b.getString("p4_2_1a_f");
		b.getString("p4_2_1b");
		b.getString("p4_2_1c");
		b.getString("p4_2_1d");
		b.getString("p4_2_1e");
		b.getString("p4_2_1f");
		predio_actual = b.getInt("predio_actual");
		
		ntramos.setText(b.getString("p4_2_1_1"));
		idtramos.setText("Tramo N\u00B0 "+b.getString("tramo_posicion"));
		ntramo1.setText(b.getString("p4_2_1a_i"));
		ntramo2.setText(b.getString("p4_2_1a_f"));
		longitud.setText(b.getString("p4_2_1b"));
		ntramo1.setEnabled(false);
		ntramo2.setEnabled(false);
		Tipo_Lindero();
		cargarConSinCerco(Integer.parseInt(b.getString("p4_2_1c")));
		TramoCerco();
		Mostrar3D();
		Mostrar3E();
		Mostrar3F();
		
		/*sp3e.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int pos, long arg3) {
				
				if(pos == 0){
					sp3f.setSelection(0);
				}
				if(pos == 1 || pos == 2){
					sp3f.setSelection(1);
				}
				if(pos == 3){
					sp3f.setSelection(2);
				}
				if(pos == 4){
					sp3f.setSelection(3);
				}
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub
				
			}
		});*/
		SpinerSeleccion3D();
		SpinerSeleccion3E();
		SpinerSeleccion3F();
		cap4Dao = new CapituloIVDao(getApplicationContext());
	}

	public void Tipo_Lindero() {
		int tip = Integer.parseInt(b.getString("id_tipo_tramo"));
		if (tip == 1) {
			lbltipolindero.setText("\u00BFDe cu\u00e1ntos tramos est\u00e1 conformado el frente de su lindero con o sin cerco?");
			TipoLindero=1;
		}
		if (tip == 2) {
			lbltipolindero.setText("\u00BFDe cu\u00e1ntos tramos est\u00e1 conformado el derecho de su lindero con o sin cerco?");
			TipoLindero=2;
		}
		if (tip == 3) {
			lbltipolindero.setText("\u00BFDe cu\u00e1ntos tramos est\u00e1 conformado el fondo de su lindero con o sin cerco?");
			TipoLindero=3;
		}
		if (tip == 4) {
			lbltipolindero.setText("\u00BFDe cu\u00e1ntos tramos est\u00e1 conformado el izquierdo de su lindero con o sin cerco?");
			TipoLindero=4;
		}
	}
	
	public void TramoCerco()
	{
		int valorChek =Integer.parseInt(b.getString("p4_2_1c"));
		if(valorChek== 1)
		{
			rsi.setChecked(true);
		}
		if (valorChek== 2) 
		{
			rno.setChecked(true);
		}	
	}
	
	public int TieneCerco()
	{
		int valorChek = 0;
		if(rsi.isChecked())
		{
			valorChek= 1;	
		}
		if (rno.isChecked()) {
			valorChek= 0;
		}
		return valorChek;		
	}
	
	public void Mostrar3D() {
		lista3d[0] = "Seleccione el sistema estructural predominante";
		lista3d[1] = "1.- Alba\u00f1iler\u00eda confinada / armada";
		lista3d[2] = "2.- Alba\u00f1iler\u00eda sin confinar";
		lista3d[3] = "3.- Malla electrosoldada / alambre";
		lista3d[4] = "4.- Adobe / tapia / pirca u otros";
		array3d = new ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item, lista3d);
		sp3d.setAdapter(array3d);
	}

	public void Mostrar3E() {
		lista3e[0] = "Seleccione el estado de conservaci\u00f3n del tramo";
		lista3e[1] = "1.- Sin da\u00f1o";
		lista3e[2] = "2.- Fisuras leves";
		lista3e[3] = "3.- Fisuras moderadas / ataque de sales";
		lista3e[4] = "4.- Agrietamiento / colapso";
		array3e = new ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item, lista3e);
		sp3e.setAdapter(array3e);
	}

	public void Mostrar3F() {
		lista3f[0] = "Seleccione la opini\u00f3n t\u00e9cnica";
		lista3f[1] = "1.- Mantenimiento";
		lista3f[2] = "2.- Rehabilitaci\u00f3n";
		lista3f[3] = "3.- Demolici\u00f3n";
		array3f = new ArrayAdapter(this,
				android.R.layout.simple_spinner_dropdown_item, lista3f);
		sp3f.setAdapter(array3f);
		
	}
	
	public void SpinerSeleccion3D() {
		if(b.getString("p4_2_1d").equals("0"))
		{
			sp3d.setSelection(0);
		}
		if(b.getString("p4_2_1d").equals("1"))
		{
			sp3d.setSelection(1);
		}
		if(b.getString("p4_2_1d").equals("2"))
		{
			sp3d.setSelection(2);
		}
		if(b.getString("p4_2_1d").equals("3"))
		{
			sp3d.setSelection(3);
		}
		if(b.getString("p4_2_1d").equals("4"))
		{
			sp3d.setSelection(4);
		}
	}
	
	public void SpinerSeleccion3E() {
		if(b.getString("p4_2_1e").equals("0"))
		{
			sp3e.setSelection(0);
		}
		if(b.getString("p4_2_1e").equals("1"))
		{
			sp3e.setSelection(1);
		}
		if(b.getString("p4_2_1e").equals("2"))
		{
			sp3e.setSelection(2);
		}
		if(b.getString("p4_2_1e").equals("3"))
		{
			sp3e.setSelection(3);
		}
		if(b.getString("p4_2_1e").equals("4"))
		{
			sp3e.setSelection(4);
		}
	}
	
	public void SpinerSeleccion3F() {
		if(b.getString("p4_2_1f").equals("0"))
		{
			sp3f.setSelection(0);
		}
		if(b.getString("p4_2_1f").equals("1"))
		{
			sp3f.setSelection(1);
		}
		if(b.getString("p4_2_1f").equals("2"))
		{
			sp3f.setSelection(2);
		}
		if(b.getString("p4_2_1f").equals("3"))
		{
			sp3f.setSelection(3);
		}
	}
	
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btnmodificartramo:
			ModificarTramo();
			break;
		case R.id.btncancelartramo:
			this.onBackPressed();
			this.onBackPressed();
			break;
		default:
			break;
		}
	}
	
	public void ModificarTramo() {
		try {
			String id_cedula = b.getString("id_cedula");
			int tipo_tramo = TipoLindero;
			int anterior_p4_2_1a_i = Integer.parseInt(b.getString("p4_2_1a_i"));
			int anterior_p4_2_1a_f = Integer.parseInt(b.getString("p4_2_1a_f"));
			int final_p4_2_1a_i = Integer.parseInt(ntramo1.getText().toString());
			int final_p4_2_1a_f = Integer.parseInt(ntramo2.getText().toString());
			int p4_2_1b = Integer.parseInt((longitud.getText().toString()));
			int p4_2_1c =TieneCerco();
			int p4_2_1d = 0;
			int p4_2_1e = 0;
			int p4_2_1f = 0;
			if (p4_2_1b <= 2147483647) {
				if (p4_2_1c == 1) {
					p4_2_1d = sp3d.getSelectedItemPosition();
					p4_2_1e = sp3e.getSelectedItemPosition();
					p4_2_1f = sp3f.getSelectedItemPosition();
					if (!sp3d.getSelectedItem().toString().equals("Seleccione el sistema estructural predominante")
							&& !sp3e.getSelectedItem().toString().equals("Seleccione el estado de conservaci\u00f3n del tramo")
							&& !sp3f.getSelectedItem().toString().equals("Seleccione la opini\u00f3n t\u00e9cnica")) {
						cap4Dao.modificarCapitulo4SeccionB(id_cedula, predio_actual, tipo_tramo, anterior_p4_2_1a_i, anterior_p4_2_1a_f, 
								final_p4_2_1a_i, final_p4_2_1a_f,p4_2_1b,p4_2_1c, p4_2_1d, p4_2_1e, p4_2_1f);
						Toast.makeText(this, " Los datos se modificaron correctamente.",Toast.LENGTH_LONG).show();
						finish();
					} else {
						Toast.makeText(
								this,
								"Debe seleccionar las caracteristicas del cerco del tramo.",
								Toast.LENGTH_LONG).show();
					}
				} else {
					cap4Dao.modificarCapitulo4SeccionB(id_cedula, predio_actual, tipo_tramo, anterior_p4_2_1a_i, anterior_p4_2_1a_f, 
							final_p4_2_1a_i, final_p4_2_1a_f,p4_2_1b,p4_2_1c, p4_2_1d, p4_2_1e, p4_2_1f);
					Toast.makeText(this, " Los datos se modificaron correctamente.",Toast.LENGTH_LONG).show();
					finish();
				}
			} else {
				Toast.makeText(
						CapituloIV_Modificar_Linderos_Activity.this,
						"El tama\u00F1o del tramo no debe exceder de 2 147 483 647 metros",
						Toast.LENGTH_SHORT).show();
			}
		} catch (Exception e) {
			Toast.makeText(this, "Faltan ingresar datos", Toast.LENGTH_LONG).show();
		}
	}
	
	@Override
	public void onCheckedChanged(CompoundButton v, boolean arg1) {
		switch (v.getId()) {
		case R.id.rsi:
			Visible(false);
			// Toast.makeText(this, "A", Toast.LENGTH_SHORT).show();
			break;

		case R.id.rno:
			Visible(true);
			// Toast.makeText(this, "B", Toast.LENGTH_SHORT).show();
			break;
		default:
			break;
		}
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		getMenuInflater().inflate(R.menu.menu_modificar_linderos_con_foto, menu);
		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		switch (item.getItemId()) {
		
		case R.id.mnFoto:
			Bundle b = getIntent().getExtras();
			Intent foto = new Intent(CapituloIV_Modificar_Linderos_Activity.this, CapituloIX_Activity.class);
			b.putBoolean("pregunta", true);
			foto.putExtras(b);
			startActivity(foto);
			break;
		case R.id.mnSalir:
			AlertDialog.Builder dialogo1 = new AlertDialog.Builder(this);
			dialogo1.setTitle("Importante");
			dialogo1.setMessage("Deseas Salir ?");
			dialogo1.setIcon(android.R.drawable.ic_dialog_alert);
			dialogo1.setCancelable(false);
			dialogo1.setPositiveButton("Si",
				new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialogo1, int id) {
						System.exit(0);
					}
				});

			dialogo1.setNegativeButton("No",
					new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialogo1, int id) {
							return;
						}
					});
			dialogo1.show();
			break;
		case R.id.mnCalculadora:
			Intent i = new Intent();
			i.setClassName("com.android.calculator2",
					"com.android.calculator2.Calculator");
			startActivity(i);
			break;
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}
	
	public void Visible(boolean visible) {
		sp3d.setEnabled(visible);
		sp3e.setEnabled(visible);
		sp3f.setEnabled(visible);

		sp3d.setSelection(0);
		sp3e.setSelection(0);
		sp3f.setSelection(0);
		
	}
	
	private void cargarConSinCerco(int seleccionado){
		if(seleccionado == 0){
			rno.setChecked(true);
		} else{
			rsi.setChecked(true);
		}
	}
}
